1. Field of the Invention
The present invention relates to an improved data processing system and, in particular, to a method and apparatus for information processing. Still more particularly, the present invention relates generally to the processing of structured documents.
2. Description of Related Art
The promulgation of non-proprietary technical standards was a significant factor in the growth of electronic communication on the Internet and the World Wide Web. Thousands of Web sites were supported by servers that ran non-proprietary communication protocols to serve Web pages that were written in non-proprietary markup languages. People could easily learn to use a variety of Web-page-authoring applications to create simple, content-oriented, Web sites. Subsequently, more sophisticated Web-site-authoring applications allowed the creation of Web-based applications that performed a variety of complex functions, both for consumers and enterprises.
In conjunction, Web browsers were continually upgraded to handle improvements in various Internet-related protocols or other features. Over time, though, the Web browser market has become dominated by two proprietary Web browsers, Netscape® Navigator/Communicator and Microsoft® Internet Explorer. In contrast to the rapid development of the Web as a whole, though, the slower, proprietary development of these browser applications has somewhat enabled the browsers themselves to become platforms for the development of Web-based applications. With the ubiquitous availability of these Web browsers, software developers can focus their efforts on new or improved Web-based applications that are compatible with these two Web browsers rather than having to worry about compatibility across multiple Web browsers. Although compatibility of a Web-based application with one of these browsers is not a guarantee of market success, it does ensure that the majority of persons that might want to use a Web-based application will be able to do so. Moreover, these two Web browsers continue to incorporate newly introduced or improved Internet-related standards.
Typically, a Web-based-application developer turns his or her attention towards client-side testing of a Web-based application after performing some amount of server-side testing of the Web-based application. Given the state of affairs with Web browsers as described above, a Web-based-application developer needs to perform client-side testing of the application in conjunction with only a few widely available Web browsers.
Although there are many potential errors that may be encountered while performing client-side testing of a Web-based application, a particularly common error is the unavailability of an in-line resource within a requested Web page. Complex Web pages are typically structured such that the initially identified Web document is a parent document that acts as a container of other documents or other data objects. In other words, child documents or objects can be embedded within the parent document by reference; these child documents or child objects are also referred to as in-line resources. When a Web browser initiates a transaction to retrieve the parent document, the browser parses the parent document and discovers the inclusion of in-line resources, thereafter initiating additional transactions to retrieve the in-line resources. Sometimes, however, an in-line resource may not be available, and the Web browser completes the transactions, either by time-out or some other method.
More problematic for the Web-based-application developer, though, is the fact that a Web browser completes its Web-page-rendering process without an unavailable in-line resource in such a way that it may appear to the Web-based application that all in-line resources have been received. In some cases, an unavailable in-line resource merely causes an aesthetic problem in that a user of a browser views a Web page with a missing graphic, which is represented on a rendered Web page by a special icon for the missing graphic image. In other cases, however, the Web-based-application may need an unavailable in-line resource in order to perform some other action, i.e. to complete a transaction, such as manipulating the in-line resource for some purpose in accordance with a previously specified user preference parameter. Hence, the unavailable in-line resource might cause additional errors, and in any case, the application developer needs to be able to discover the source of the error.
In this type of situation, there may be several sources for the error. In a first case, the server may have failed to send the in-line resource. If the server is a publicly available resource that was randomly chosen by the application developer merely as a source of content for the test, then there is little that the application developer can do other than to use a different server. In a second case, if the Web-based application comprises both client-side and server-side processing, then it may be assumed that the application developer has some control over the server and can take some action with respect to the server. In these first two cases, the application developer can use commercially available software tools to discover the error of the missing in-line resource to some degree. For example, a protocol stack sniffer can monitor the client requests and the server responses at the client and then generate a report with the results of the transactions, which allows the application developer to view the data traffic to and from the client and the server, thereby providing the application developer with the opportunity to determine whether a missing in-line resource is due to the fact that a server failed to transmit the in-line resource. However, these tools have limitations, such as the inability to handle concurrent data streams.
Given the fact that a Web-based application relies on the Web browser platform for a significant portion of its Web transaction processing, the Web browser platform itself is a much better source of information about the unavailability of an in-line resource within a requested Web page. Therefore, it would be advantageous to have a method and system for discovering whether or not the Web browser has an indication that an in-line resource is unavailable. It would be particularly advantageous to be able to discover such information in real-time or near real-time.